1. Field of the Invention
The present invention relates to a high performance serial bus. More particularly, the present invention relates to timeout message management in an IEEE 1394 bridge network.
2. Description of the Related Art
The IEEE 1394 is a high performance serial bus that has one of the most versatile interconnect technologies available. The IEEE 1394 high-speed serial bus is capable of transfer speeds of 100 Mb, 200 Mb, or even 400 Mb. These transfer speeds are available over twisted-pair wire, and the serial bus is hot-plugable. The IEEE 1394 can be used in many applications, including but not limited to, video streaming from a camcorder, controls for automobiles, and digital audio signals such as MIDI.
In addition, IEEE 1394 is an international standard for a low-cost digital interface that is used for integrating computing, communication, and entertainment into multimedia applications.
An important feature of IEEE 1394 is that it has flexible topology that supports daisy chaining and branching for communication throughout a particular network.
In an IEEE 1394 network, the serial bus architecture is defined in terms of nodes. A node is an independently resettable and identifiable addressable entity. Each node is a logical entity having a unique address, which includes an identification ROM and control registers. These control registers are a standardized set and can be reset independent of each other.
IEEE 1394 provides asynchronous transport that is a traditional memory-mapped loaded and stored interface. During an asynchronous transport, a data request is sent to a specific address, and the entity having that address returns an acknowledgement.
In an IEEE 1394 network, there can be up to 1,023 logical buses and up to 63 nodes on each bus. If both the asynchronous packet sender and receiver are on the same bus, transaction timeout values can be obtained according to IEEE draft standard 1394-1995. However, if a sender exists on a different bus as a receiver, the sender sends a TIMEOUT request message addressed to the bus where the receiver is connected in order to obtain remote_timeout_seconds, remote_timeout_cycles, max_remote_payload and hop_count values for a remote transaction between the two buses. The remote_timeout_seconds, the remote_timeout_cycles, the max_remote_payload and the hop_count values are referred to collectively as remote timeout values.
According to the draft standard for IEEE 1394.1 high performance serial bus bridges revision 1.00, each bridge on the path from a source bus to a destination bus shall intercept a TIMEOUT request message and update each field as follows: The TIMEOUT request message shall be forwarded by bridges on its route toward the destination bus. The last exit portal on the destination bus that intercepts the TIMEOUT request message also adds its local SPLIT_TIMEOUT value obtained according to IEEE 1394-1995 standard to the remote timeout field in the message and synthesizes a TIMEOUT response message that contains the result of the above calculation and sends it to the message sender.
According to IEEE1394.1 draft standard, when there is a node on a bus which sends a TIMEOUT request message to a destination bus, even if other nodes on the first source bus have already obtained the remote transaction timeout values for a remote transaction to the destination bus, a TIMEOUT request message shall be forwarded and processed by every bridge portal on the path from a source bus to the destination bus each and every time a TIMEOUT request message is initiated to the same destination bus.
Accordingly, the processing by each portal on the path between a source bus and a destination bus of subsequent TIMEOUT request messages from other nodes on the same source bus to the same destination bus is redundant, and wastes bandwidth resources.
As another node on the source bus has already obtained the remote transaction timeout values of the destination bus, a node, which needs the same remote transaction timeout values, should be able to obtain these values from the node on the same bus that has previously received them. The redundancy of the transaction proceeding again to the same bridge portals on the path causes congestion by permitting unnecessary transaction time for another node which sends the TIMEOUT request message has to wait for a corresponding response.